﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace PreContractWeb
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        //public static string GetReportHTML2DimByDate(long employeeID, ReportType rptType, string asbOrLucent, int noOfMonth, int adjust, out string err, out string excelHTML, out string rptTitle)
        //{
        //    err = string.Empty;
        //    excelHTML = string.Empty;
        //    #region Get dimension and fact talbe values
        //    DataTable dtRowDimension = GetRowDimension(employeeID, rptType);
        //    DataSet dtSet = GetDateDimensionAndFact(employeeID, rptType, asbOrLucent, noOfMonth, 0, 0, adjust);
        //    DataTable dtColDimension = dtSet.Tables[0];
        //    DataTable dtFactValues = dtSet.Tables[1];
        //    #endregion

        //    string tbForPage;
        //    string tbForExcel;

        //    StringBuilder sb = new StringBuilder();
        //    StringBuilder sbTable = new StringBuilder();
        //    StringBuilder sbExcel = new StringBuilder();
        //    StringBuilder sbTableExcel = new StringBuilder();

        //    tbForPage = "<table border='0'  cellpadding='2' cellspacing='1' bgcolor='black'><tr class='row_title'>";
        //    tbForExcel = "<table border='1'  cellpadding='2' cellspacing='0'><tr class='row_title'>";
        //    tbForPage += "<td rowspan='2' colspan='2'>" + rptType.ToString().Replace("BD", "PU") + "</td>";
        //    tbForPage = tbForPage.Replace("_Quarterly", "");
        //    tbForExcel += "<td rowspan='2' colspan='2'>" + rptType.ToString().Replace("BD", "PU") + "</td>";
        //    tbForExcel = tbForExcel.Replace("_Quarterly", "");

        //    int n = 0;
        //    Hashtable ht = new Hashtable();
        //    ArrayList arrDate = new ArrayList();
        //    Hashtable htSubTotal = new Hashtable(); //For save subtotal
        //    Hashtable htTotal = new Hashtable();    //For save total
        //    string currYear = "";
        //    string lastYear = "";

        //    #region fill date head in ArrayList

        //    for (int i = 0; i < dtColDimension.Rows.Count; i++)
        //    {
        //        if (dtColDimension.Rows[i][2] == DBNull.Value)
        //        {
        //            if (dtColDimension.Rows[i][1] == DBNull.Value && dtColDimension.Rows[i][0] != DBNull.Value)
        //            {
        //                //Year
        //                ht.Add(n, "Y");
        //                arrDate.Add("Y" + dtColDimension.Rows[i][0] + "Q" + dtColDimension.Rows[i][1] + "M" + dtColDimension.Rows[i][2]);


        //                htSubTotal.Add(n + "-1", 0);
        //                htSubTotal.Add(n + "-2", 0);
        //                htTotal.Add(n + "-1", 0);
        //                htTotal.Add(n + "-2", 0);

        //                if ((currYear == "") && (dtColDimension.Rows[i][0].ToString() != SpecialYearQuater.AllYear) && (dtColDimension.Rows[i][0].ToString() != SpecialYearQuater.AfterQuater))
        //                {
        //                    //with Transformed data
        //                    currYear = dtColDimension.Rows[i][0].ToString();
        //                    sb.Append("<td colspan='3' class='title_year'>");
        //                    htSubTotal.Add(n + "-0", 0);
        //                    htTotal.Add(n + "-0", 0);
        //                }
        //                else
        //                {
        //                    sb.Append("<td colspan='2' class='title_year'>");
        //                }
        //                if (dtColDimension.Rows[i][0].ToString() == SpecialYearQuater.AllYear)
        //                {
        //                    sb.Append("All Total");
        //                }
        //                else if (dtColDimension.Rows[i][0].ToString() == SpecialYearQuater.AfterQuater)
        //                {
        //                    ICloseDate iCloseDate = (ICloseDate)AppContainer.Instance[Services.CONST_CloseDate_Service];
        //                    DataTable dt = iCloseDate.GetCloseDateByDate(DateTime.Now);
        //                    sb.Append("After Q" + dt.Rows[0][DAL.CloseDate.CONST_Quarter] + " ");
        //                }
        //                else
        //                {
        //                    sb.Append(dtColDimension.Rows[i][0] + " Total");
        //                }

        //                sb.Append("</td>");

        //                lastYear = dtColDimension.Rows[i][0].ToString();
        //                n++;

        //            }
        //            else if (dtColDimension.Rows[i][0] != DBNull.Value)
        //            {
        //                //Quater
        //                ht.Add(n, "Q");

        //                htSubTotal.Add(n + "-1", 0);
        //                htSubTotal.Add(n + "-2", 0);
        //                htTotal.Add(n + "-1", 0);
        //                htTotal.Add(n + "-2", 0);

        //                arrDate.Add("Y" + dtColDimension.Rows[i][0] + "Q" + dtColDimension.Rows[i][1] + "M" + dtColDimension.Rows[i][2]);

        //                sb.Append("<td colspan='2'  class='title_quater'>");
        //                sb.Append(dtColDimension.Rows[i][0].ToString());
        //                sb.Append(" Q");
        //                sb.Append(dtColDimension.Rows[i][1].ToString());
        //                sb.Append("</td>");
        //                n++;

        //            }

        //        }
        //        else
        //        {
        //            //Month
        //            ht.Add(n, "M");

        //            htSubTotal.Add(n + "-1", 0);
        //            htSubTotal.Add(n + "-2", 0);
        //            htTotal.Add(n + "-1", 0);
        //            htTotal.Add(n + "-2", 0);

        //            arrDate.Add("Y" + dtColDimension.Rows[i][0] + "Q" + dtColDimension.Rows[i][1] + "M" + dtColDimension.Rows[i][2]);
        //            sb.Append("<td colspan='2'  class='title_month'>");
        //            sb.Append(dtColDimension.Rows[i][0].ToString());
        //            sb.Append(" ");
        //            sb.Append(GetMonthName(Convert.ToInt32(dtColDimension.Rows[i][2].ToString())));
        //            sb.Append("</td>");
        //            n++;

        //        }
        //    }

        //    sb.Append("</tr>");
        //    sb.Append("<tr class='row_title'>");

        //    for (int i = 0; i < arrDate.Count; i++)
        //    {
        //        if (ht[i].ToString() == "Y")
        //        {
        //            if ((arrDate[i].ToString().IndexOf('Y' + currYear) >= 0) && (currYear != string.Empty))
        //                sb.Append("<td class='title_year'>Have Transformed</td>");

        //            sb.Append("<td class='title_year'>To Be Transformed</td><td  class='title_year'>Delivered</td>");
        //        }
        //        else if (ht[i].ToString() == "Q")
        //            sb.Append("<td class='title_quater'>To Be Transformed</td><td class='title_quater'>Delivered</td>");

        //        else
        //            sb.Append("<td  class='title_month'>To Be Transformed</td><td class='title_month'>Delivered</td>");
        //    }
        //    sb.Append("</tr>");

        //    sbTable.Append(sb.ToString());
        //    sbTableExcel.Append(sb.ToString());
        //    #endregion

        //    sb.Length = 0;
        //    sbExcel.Length = 0;

        //    int m = 0;
        //    string strTemp = "";
        //    string strRptTitle = "";
        //    bool bFound = false;
        //    //double dblTemp = new double();
        //    decimal dblTemp = new decimal();

        //    #region Get Report title

        //    strRptTitle = GetReportTitle(rptType, currYear, lastYear, asbOrLucent);
        //    //tbForPage = strRptTitle + tbForPage;
        //    rptTitle = strRptTitle;
        //    tbForExcel = strRptTitle + tbForExcel;

        //    #endregion

        //    for (int i = 0; i < dtRowDimension.Rows.Count; i++)
        //    {

        //        #region if ROLLUP line for all, output total by Month, Quater and Year

        //        if (dtRowDimension.Rows[i][0] == DBNull.Value && dtRowDimension.Rows[i][1] == DBNull.Value)
        //        {
        //            //insert total line
        //            strTemp = GetTotal(rptType, ref htTotal, arrDate, asbOrLucent, currYear, 0, 0, true, adjust);
        //            sbTable.Append(strTemp);
        //            //strTemp = GetTotal(rptType,ref htTotal, arrDate,asbOrLucent,currYear,0,0,false);
        //            sbTableExcel.Append(strTemp);
        //            continue;

        //        }
        //        #endregion

        //        #region if ROLLUP line for first Level, close rowspan and output sub total by Month, Quater and Year

        //        if (dtRowDimension.Rows[i][2] == DBNull.Value)
        //        {
        //            strTemp = string.Format(strTemp, m);
        //            sbTable.Append(strTemp);
        //            sbTableExcel.Append(strTemp);

        //            sbTable.Append(sb.ToString());
        //            sbTableExcel.Append(sbExcel.ToString());

        //            strTemp = GetSubTotal(rptType, dtRowDimension.Rows[i], ref htSubTotal, arrDate, asbOrLucent, currYear, 0, 0, true, adjust);
        //            sbTable.Append(strTemp);
        //            //strTemp = GetSubTotal(rptType,dtRowDimension.Rows[i], ref htSubTotal, arrDate,asbOrLucent,currYear,0,0,false);
        //            sbTableExcel.Append(strTemp.Replace("<br>", ""));

        //            //insert subtotal line.
        //            sb.Length = 0;
        //            sbExcel.Length = 0;
        //            m = 0;
        //            continue;
        //        }


        //        #endregion

        //        m++;
        //        if (m == 1)
        //        {
        //            strTemp = "<tr class='row_body'><td rowspan='{0}'>" + dtRowDimension.Rows[i][1] + "</td>";
        //            sb.Append("<td>" + dtRowDimension.Rows[i][3] + "</td>");
        //            //sbExcel.Append("<td>" + dtRowDimension.Rows[i][3].ToString() + "</td>");
        //        }
        //        else
        //        {
        //            sb.Append("<tr class='row_body'><td>" + dtRowDimension.Rows[i][3] + "</td>");
        //            //sbExcel.Append("<tr class='row_body'><td>" + dtRowDimension.Rows[i][3].ToString() + "</td>");
        //        }

        //        for (int j = 0; j < arrDate.Count; j++)
        //        {
        //            bFound = false;
        //            #region find the row by row dimension and map date head

        //            for (int k = 0; k < dtFactValues.Rows.Count; k++)
        //            {

        //                #region fine the value

        //                if (dtRowDimension.Rows[i][0].ToString() == dtFactValues.Rows[k][0].ToString() && dtRowDimension.Rows[i][2].ToString() == dtFactValues.Rows[k][1].ToString()
        //                        && MapValue(arrDate[j].ToString(), dtFactValues.Rows[k][2], dtFactValues.Rows[k][3], dtFactValues.Rows[k][4])
        //                    )
        //                {
        //                    bFound = true;
        //                    if (ht[j].ToString() == "Y")
        //                    {

        //                        if (dtFactValues.Rows[k][2].ToString() == currYear)
        //                        {
        //                            sb.Append("<td>");
        //                            //sbExcel.Append("<td>");

        //                            dblTemp = FormatMeTo2Dgts(dtFactValues.Rows[k][5].ToString());

        //                            //Check transformed Count
        //                            if (Convert.ToInt32(dtFactValues.Rows[k][8].ToString()) != 0)
        //                            {
        //                                sb.Append(GetLink(dtRowDimension.Rows[i], dtFactValues.Rows[k], rptType, asbOrLucent, 0, 0, ReportDataType.Transformed, adjust));

        //                                sb.Append(dblTemp.ToString());
        //                                //sbExcel.Append(dblTemp.ToString());

        //                                htSubTotal[j + "-0"] = Convert.ToDecimal(htSubTotal[j + "-0"]) + Convert.ToDecimal(dtFactValues.Rows[k][5].ToString());
        //                                htTotal[j + "-0"] = Convert.ToDecimal(htTotal[j + "-0"]) + Convert.ToDecimal(dtFactValues.Rows[k][5].ToString());
        //                                sb.Append("</a>");
        //                            }
        //                            else
        //                            {
        //                                sb.Append("-");
        //                                //sbExcel.Append("-");
        //                            }

        //                            //sb.Append(dtFactValues.Rows[k][5].ToString());

        //                            sb.Append("</td>");
        //                            //sbExcel.Append("</td>");
        //                        }

        //                        sb.Append("<td>");
        //                        //sbExcel.Append("<td>");

        //                        dblTemp = FormatMeTo2Dgts(dtFactValues.Rows[k][6].ToString());


        //                        //Check to be transformed Count
        //                        if (Convert.ToInt32(dtFactValues.Rows[k][9].ToString()) != 0)
        //                        {
        //                            sb.Append(GetLink(dtRowDimension.Rows[i], dtFactValues.Rows[k], rptType, asbOrLucent, 0, 0, ReportDataType.ToBeTransformed, adjust));
        //                            sb.Append(dblTemp.ToString());
        //                            //sbExcel.Append(dblTemp.ToString());
        //                            htSubTotal[j + "-1"] = Convert.ToDecimal(htSubTotal[j + "-1"]) + Convert.ToDecimal(dtFactValues.Rows[k][6].ToString());
        //                            htTotal[j + "-1"] = Convert.ToDecimal(htTotal[j + "-1"]) + Convert.ToDecimal(dtFactValues.Rows[k][6].ToString());
        //                            sb.Append("</a>");
        //                        }
        //                        else
        //                        {
        //                            sb.Append("-");
        //                            //sbExcel.Append("-");
        //                        }

        //                        //sb.Append(dtFactValues.Rows[k][6].ToString());

        //                        sb.Append("</td>");
        //                        //sbExcel.Append("</td>");

        //                        sb.Append("<td>");
        //                        //sbExcel.Append("<td>");
        //                        dblTemp = FormatMeTo2Dgts(dtFactValues.Rows[k][7].ToString());
        //                        //Check delivered Count
        //                        if (Convert.ToInt32(dtFactValues.Rows[k][10].ToString()) != 0)
        //                        {
        //                            sb.Append(GetLink(dtRowDimension.Rows[i], dtFactValues.Rows[k], rptType, asbOrLucent, 0, 0, ReportDataType.Delivered, adjust));
        //                            sb.Append(dblTemp.ToString());
        //                            //sbExcel.Append(dblTemp.ToString());
        //                            htSubTotal[j + "-2"] = Convert.ToDecimal(htSubTotal[j + "-2"]) + Convert.ToDecimal(dtFactValues.Rows[k][7].ToString());
        //                            htTotal[j + "-2"] = Convert.ToDecimal(htTotal[j + "-2"]) + Convert.ToDecimal(dtFactValues.Rows[k][7].ToString());
        //                            sb.Append("</a>");
        //                        }
        //                        else
        //                        {
        //                            sb.Append("-");
        //                            //sbExcel.Append("-");
        //                        }

        //                        //sb.Append(dtFactValues.Rows[k][7].ToString());

        //                        sb.Append("</td>");
        //                        //sbExcel.Append("</td>");
        //                    }
        //                    else if (ht[j].ToString() == "Q")
        //                    {
        //                        sb.Append("<td>");
        //                        //sbExcel.Append("<td>");
        //                        dblTemp = FormatMeTo2Dgts(dtFactValues.Rows[k][6].ToString());
        //                        //Check to be transformed Count
        //                        if (Convert.ToInt32(dtFactValues.Rows[k][9].ToString()) != 0)
        //                        {
        //                            sb.Append(GetLink(dtRowDimension.Rows[i], dtFactValues.Rows[k], rptType, asbOrLucent, 0, 0, ReportDataType.ToBeTransformed, adjust));
        //                            sb.Append(dblTemp.ToString());
        //                            //sbExcel.Append(dblTemp.ToString());
        //                            htSubTotal[j + "-1"] = Convert.ToDecimal(htSubTotal[j + "-1"]) + Convert.ToDecimal(dtFactValues.Rows[k][6].ToString());
        //                            htTotal[j + "-1"] = Convert.ToDecimal(htTotal[j + "-1"]) + Convert.ToDecimal(dtFactValues.Rows[k][6].ToString());
        //                            sb.Append("</a>");
        //                        }
        //                        else
        //                        {
        //                            sb.Append("-");
        //                            //sbExcel.Append("-");
        //                        }

        //                        //sb.Append(dtFactValues.Rows[k][6].ToString());

        //                        sb.Append("</td><td>");
        //                        //sbExcel.Append("</td><td>");

        //                        dblTemp = FormatMeTo2Dgts(dtFactValues.Rows[k][7].ToString());
        //                        //Check delivered Count
        //                        if (Convert.ToInt32(dtFactValues.Rows[k][10].ToString()) != 0)
        //                        {
        //                            sb.Append(GetLink(dtRowDimension.Rows[i], dtFactValues.Rows[k], rptType, asbOrLucent, 0, 0, ReportDataType.Delivered, adjust));
        //                            sb.Append(dblTemp.ToString());
        //                            //sbExcel.Append(dblTemp.ToString());
        //                            htSubTotal[j + "-2"] = Convert.ToDecimal(htSubTotal[j + "-2"]) + Convert.ToDecimal(dtFactValues.Rows[k][7].ToString());
        //                            htTotal[j + "-2"] = Convert.ToDecimal(htTotal[j + "-2"]) + Convert.ToDecimal(dtFactValues.Rows[k][7].ToString());
        //                            sb.Append("</a>");
        //                        }
        //                        else
        //                        {
        //                            sb.Append("-");
        //                            //sbExcel.Append("-");
        //                        }

        //                        //sb.Append(dtFactValues.Rows[k][7].ToString());

        //                        sb.Append("</td>");
        //                        //sbExcel.Append("</td>");
        //                    }
        //                    else
        //                    {
        //                        sb.Append("<td>");
        //                        //sbExcel.Append("<td>");
        //                        dblTemp = FormatMeTo2Dgts(dtFactValues.Rows[k][6].ToString());
        //                        //Check to be transformed Count
        //                        if (Convert.ToInt32(dtFactValues.Rows[k][9].ToString()) != 0)
        //                        {
        //                            sb.Append(GetLink(dtRowDimension.Rows[i], dtFactValues.Rows[k], rptType, asbOrLucent, 0, 0, ReportDataType.ToBeTransformed, adjust));
        //                            sb.Append(dblTemp.ToString());
        //                            //sbExcel.Append(dblTemp.ToString());
        //                            htSubTotal[j + "-1"] = Convert.ToDecimal(htSubTotal[j + "-1"]) + Convert.ToDecimal(dtFactValues.Rows[k][6].ToString());
        //                            htTotal[j + "-1"] = Convert.ToDecimal(htTotal[j + "-1"]) + Convert.ToDecimal(dtFactValues.Rows[k][6].ToString());
        //                            sb.Append("</a>");
        //                        }
        //                        else
        //                        {
        //                            sb.Append("-");
        //                            //sbExcel.Append("-");
        //                        }

        //                        //sb.Append(dtFactValues.Rows[k][6].ToString());
        //                        sb.Append("</a>");
        //                        sb.Append("</td><td>");
        //                        //sbExcel.Append("</td><td>");

        //                        dblTemp = FormatMeTo2Dgts(dtFactValues.Rows[k][7].ToString());
        //                        //Check delivered Count
        //                        if (Convert.ToInt32(dtFactValues.Rows[k][10].ToString()) != 0)
        //                        {
        //                            sb.Append(GetLink(dtRowDimension.Rows[i], dtFactValues.Rows[k], rptType, asbOrLucent, 0, 0, ReportDataType.Delivered, adjust));
        //                            sb.Append(dblTemp.ToString());
        //                            //sbExcel.Append(dblTemp.ToString());
        //                            htSubTotal[j + "-2"] = Convert.ToDecimal(htSubTotal[j + "-2"]) + Convert.ToDecimal(dtFactValues.Rows[k][7].ToString());
        //                            htTotal[j + "-2"] = Convert.ToDecimal(htTotal[j + "-2"]) + Convert.ToDecimal(dtFactValues.Rows[k][7].ToString());
        //                            sb.Append("</a>");
        //                        }
        //                        else
        //                        {
        //                            sb.Append("-");
        //                            //sbExcel.Append("-");
        //                        }
        //                        //sb.Append(dtFactValues.Rows[k][7].ToString());

        //                        sb.Append("</td>");
        //                        //sbExcel.Append("</td>");
        //                    }

        //                    dtFactValues.Rows.RemoveAt(k);
        //                    k--;
        //                    break;
        //                }
        //                #endregion
        //            }
        //            #region No find the value
        //            if (!bFound)
        //            {
        //                if (ht[j].ToString() == "Y")
        //                {
        //                    if ((arrDate[j].ToString().IndexOf('Y' + currYear) >= 0) && (currYear != string.Empty))
        //                    {
        //                        //Have transformed
        //                        sb.Append("<td>-</td>");
        //                        //sbExcel.Append("<td>-</td>");
        //                    }
        //                    //     sb.Append("<td class='title_year'>-</td><td class='title_year'>-</td>");
        //                    //     sbExcel.Append("<td class='title_year'>-</td><td class='title_year'>-</td>");
        //                }
        //                // else if (ht[j].ToString() == "Q")
        //                // {
        //                //     sb.Append("<td class='title_quater'>-</td><td class='title_quater'>-</td>");
        //                //     sbExcel.Append("<td class='title_quater'>-</td><td class='title_quater'>-</td>");
        //                //}
        //                // else
        //                // {
        //                //     sb.Append("<td>-</td><td>-</td>");
        //                //     sbExcel.Append("<td>-</td><td>-</td>");
        //                // }
        //                sb.Append("<td>-</td><td>-</td>");
        //                //sbExcel.Append("<td>-</td><td>-</td>");  

        //            }
        //            #endregion

        //            #endregion
        //        }
        //        sb.Append("</tr>");
        //        //sbExcel.Append("</tr>");
        //        //sbTable.Append(sb.ToString());
        //        //sb.Length = 0;
        //        sbExcel = sb;
        //    }

        //    tbForPage = tbForPage + sbTable + "</table>";
        //    tbForExcel = tbForExcel + sbTableExcel + "</table>";
        //    excelHTML = tbForExcel;

        //    return tbForPage;
        //}
    }
}
